﻿using HamcoWcs.Models.EdgeInfos;
using System.Collections.Generic;

namespace HamcoWcs.Models.PathInfos
{
    public class PathInfoDto
    {
        //public long Id { get; set; }
        public string PathName { get; set; }
        public string FromNode { get; set; }
        public string ToNode { get; set; }
        public int PathType { get; set; }
        public string UsedPath { get; set; }
        public string DefaultPath { get; set; }
        public string AlternatePaths { get; set; }
        public List<EdgeInfoDto> EdgeDtos { get; set; } = new List<EdgeInfoDto>();


        //public List<string> ErrorNodes { get; set; } = new List<string>();
        //public List<List<string>> Paths { get; set; } = new List<List<string>>();




        //public void FilterPaths()
        //{
        //    for (int i = this.Paths.Count - 1; i >= 0; i--)
        //    {
        //        if (this.ToNode.Contains("CJSTW") && this.FromNode.Contains("CJSTW") && this.Paths[i].Count > 3)
        //        {
        //            // 移库任务
        //            this.Paths.RemoveAt(i);
        //        }
        //        else if (this.PathType == 10 && (this.Paths[i].Contains("CJMIFB00") || this.Paths[i].Contains("CJMIFC00")))
        //        {
        //            //码头相关路径有提升机的情况
        //            this.Paths.RemoveAt(i);
        //        }
        //        else if (this.Paths[i].Contains("CJMIFB00") && this.Paths[i].Contains("CJMIFC00"))
        //        {
        //            // 走两次提升机的情况
        //            this.Paths.RemoveAt(i);
        //        }
        //    }
        //}
        //public string PathValue { get; set; }

        //public EnumPathType PathType { get; set; }

    }

    //public static class PathInfoDtoExtension
    //{
    //    public static void CalcPath(this PathInfoDto pathInfo, Dictionary<string, NodeInfoDto> nodes)
    //    {
    //        var nextNodes = nodes[pathInfo.FromNode];

    //        nodes.TryGetValue()
    //        var path = new List<string> { pathInfo.FromNode };

    //    }

    //    private static void Explore(Dictionary<string, NodeInfoDto> nodes)
    //    {

    //    }
    //}
}
